package com.ruoyi.order.service;

import com.ruoyi.order.domain.VerOrderItem;
import com.ruoyi.order.domain.dto.ScrollPageRequest;
import com.ruoyi.order.domain.dto.ScrollPageResponse;
import com.ruoyi.order.domain.dto.VerOrderItemDto;

import java.util.List;

/**
 * 订单项Service接口
 *
 * @author ruoyi
 * @date 2025-08-21
 */
public interface IVerOrderItemService {
    /**
     * 查询订单项
     *
     * @param id 订单项主键
     * @return 订单项
     */
    public VerOrderItem selectVerOrderItemById(Long id);

    /**
     * 查询订单项列表
     *
     * @param verOrderItem 订单项
     * @return 订单项集合
     */
    public List<VerOrderItem> selectVerOrderItemList(VerOrderItem verOrderItem);

    /**
     * 新增订单项
     *
     * @param verOrderItem 订单项
     * @return 结果
     */
    public int insertVerOrderItem(VerOrderItem verOrderItem);

    /**
     * 修改订单项
     *
     * @param verOrderItem 订单项
     * @return 结果
     */
    public int updateVerOrderItem(VerOrderItem verOrderItem);

    /**
     * 批量删除订单项
     *
     * @param ids 需要删除的订单项主键集合
     * @return 结果
     */
    public int deleteVerOrderItemByIds(Long[] ids);

    /**
     * 删除订单项信息
     *
     * @param id 订单项主键
     * @return 结果
     */
    public int deleteVerOrderItemById(Long id);

    /**
     * 滚动分页查询订单项列表
     *
     * @param request 滚动分页请求
     * @return 滚动分页响应
     */
    public ScrollPageResponse<VerOrderItem> selectVerOrderItemListByScroll(ScrollPageRequest request);

    /**
     * 根据订单ID查询订单详情（含订单项列表）
     *
     * @param orderId 订单ID
     * @return 订单详情对象，包含订单字段与 orderItems 列表
     */
    VerOrderItemDto selectVerOrderItemByOrderId(Long orderId);


}
